#ifndef POINTMANAGER_H
#define POINTMANAGER_H

#include <QObject>

#include "Point.h"

class PointManager : public QObject
{
    Q_OBJECT
public:
    explicit PointManager(QObject *parent = nullptr);

    QSharedPointer<Point> AddPoint(const QString &name);

    QSharedPointer<Point> GetPoint(const QString &id) const;
    QList<QSharedPointer<Point>> GetPoints() const;
    QList<QSharedPointer<Point>> GetPoints(const QStringList &ids) const;

    void SetShowPoints(const QStringList &ids);
    void SetShowPoints(const QList<QSharedPointer<Point>> &showPoints);
    QList<QSharedPointer<Point>> GetShowPoints() const;

    void ClearPoints();

    void SetTimes(const QStringList &times);
    QStringList GetTimes() const;

private:
    QList<QSharedPointer<Point>> points;
    QList<QSharedPointer<Point>> showPoints;
    QStringList times;
};

#endif // POINTMANAGER_H
